#pragma once

#include "Reflection/Enum.h"

class CGSharpFieldValuesContainer;

class CGSharpEnum: public CEnumBase 
{
public:
    CGSharpEnum(
        STypeID InTypeID
        ,const TMap<int64_t,CString>& InValues);

    virtual ~ CGSharpEnum();
    
    virtual CType* GetValueType() const override
    {
        static CType* ValueType=  CGetType<int64_t>()();
        return ValueType;
    }

    
    CGSharpFieldValuesContainer* GetStaticValues() const;
protected:
    CGSharpFieldValuesContainer* StaticFieldValues= nullptr;
    static void OnPostConstruct( CGSharpEnum* InEnum);
};